import { openDB, findDb, deleteDb } from './indexDB.js'
import { cutFile, saveIndexDb, uploadFileHttp } from './library.js'
// 初始化检查文件是否上传完成
export const initFileUpload = async (config) => {
    if(!config.id) { return }
    await openDB()
    let obj = await findDb(config.id)
    obj && handleDbUpload(config, obj?.files)
    return obj?.files[0] || null
}
// 导出文件上传
export const uploadFile = async (config) => {
    if (!config.id) {
        config.fail('参数id不能为空')
        throw new Error("参数id不能为空")
    }
    if (!config.option.file) {
        config.fail('上传的文件不能为空！')
        throw new Error("上传的文件不能为空！")
    }
    let fileList = cutFile(config.option.file)
    // 打开数据库
    await openDB(config.id)
    // 将文件存储到indexdb
    saveIndexDb(fileList, config)
    // 文件上传
    handleDbUpload(config, fileList)
}
// 从数据库拿数据上传
const handleDbUpload = async(config, list = []) => {
    let fileList = list.filter(item => !item.status) // status    0：未上传  1:已上传  空 未上传
    // 文件上传
    uploadFileHttp(fileList, config, 100*((list[0].totalChunks - fileList.length)/list[0].totalChunks))
}